package cn.lili.common.security.token.base;

import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.security.token.Token;

/**
 * AbstractToken 抽象token，定义生成token类
 *
 * @author Chopper
 * @version v1.0 2020-11-13 10:13
 */
public abstract class AbstractTokenGenerate {

	/**
	 * 生成token
	 *
	 * @param username
	 *            用户名
	 * @param longTerm
	 *            是否长时间有效
	 * @return TOKEN对象
	 */
	public abstract Token createToken(String username, Boolean longTerm);

	/**
	 * 刷新token
	 *
	 * @param refreshToken
	 *            刷新token
	 * @return token
	 */
	public abstract Token refreshToken(String refreshToken);

	/**
	 * 默认role
	 */
	public UserEnums role = UserEnums.MANAGER;

}
